package com.yidu.action;

import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import com.yidu.comment.Page;
import com.yidu.comment.Tools;
import com.yidu.model.SnCommodity;
import com.yidu.model.SnProDetail;
import com.yidu.model.SnUser;
import com.yidu.service.SnCommodityService;

/**
 * 商品表的action
 * @author chensituo
 * @date 2018年11月27日 下午4:07:48
 */
@Controller
@RequestMapping("/commodity")
public class SnCommodityAction {
	/**
	 * 注入商品service
	 */
	@Resource
	SnCommodityService commodityService;
	
	/**
	 * 根据生产订单id查询生产详情
	 * @param page 当前页数
	 * @param limit 每页行数
	 * @param commodity 商品model
	 * @return 生产详情model
	 */
	@RequestMapping("findAll")
	@ResponseBody
	public Map<String, Object> findAll(String page,String limit,SnCommodity commodity) {
		//得到分页工具类
		Page pages=new Page();
		//将数据封装
		pages.setCurPage(Integer.valueOf(page));
		pages.setRows(Integer.valueOf(limit));

		//创建一个map对象
		Map<String, Object> maps=new HashMap<>();
		maps.put("page", pages);
		maps.put("commodity", commodity);
		
		//调用根据生产订单id查询生产详情的方法
		List<SnProDetail> list=commodityService.findAll2(maps);
		//调用查询行数的方法
		int count=commodityService.findCount2(maps);

		Map<String, Object> map = new HashMap<>();
		map.put("code", 0);
		map.put("msg", 0);
		map.put("count",count);
		//将list放入map中
		map.put("data", list);
		return map;
	}
	/**
	 * 增加或修改
	 * @param commodity 商品model对象
	 * @return 0  增加或修改失败 1 增加或修改成功
	 * @throws IOException 
	 * @throws IllegalStateException 
	 */
	@RequestMapping("addOrUpdate")
	public String addOrUpdate(@RequestParam(value = "file", required = false) MultipartFile file,HttpServletRequest request,SnCommodity commodity) throws IllegalStateException, IOException {
		String path = Tools.getRealPath(request, file);
		commodity.setComImage(path);
		if(commodity.getTypeId()!=null && !"".equals(commodity.getTypeId())) {
			commodity.setOper(commodity.getTypeId());
		}
		int rows=commodityService.addOrUpdate(commodity);
		return "redirect:../page/cst/sncommodity.html";
	}
	
	/**
	 * 根据id查询
	 * @param comId 商品id
	 * @return 商品model
	 */
	@RequestMapping("findById")
	@ResponseBody
	public SnCommodity findById(String comId) {
		return commodityService.findById(comId);
	}
	/**
	 * 删除
	 * @param comId 商品id
	 * @return 0 删除失败 1 删除成功
	 */
	@RequestMapping("delete")
	@ResponseBody
	public int delete(String comId,HttpSession session) {
		
		SnUser user=(SnUser) session.getAttribute("user");
		//d调用删除的方法
		return commodityService.delete(comId,user);
	}
	
	/**
	 * 查询所有
	 * @return 商品model集合
	 */
	@RequestMapping("query")
	@ResponseBody
	public List<SnCommodity> query(){
		return commodityService.query();
	}
}

